/** axios封装
 * 请求拦截、相应拦截、错误统一处理
 * */
import axios from 'axios';

// // 环境的切换
// if (process.env.NODE_ENV === 'development') {
//   axios.defaults.baseURL = '/';
// } else if (process.env.NODE_ENV === 'debug') {
//   axios.defaults.baseURL = '/';
// } else if (process.env.NODE_ENV === 'production') {
//   axios.defaults.baseURL = '/';
// }

// 请求超时时间
axios.defaults.timeout = 10000;

// post请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';


// 响应拦截器
axios.interceptors.response.use(
  (response) => {
    if (response.status === 200) {
      return Promise.resolve(response);
    }
    return Promise.reject(response);
  // eslint-disable-next-line consistent-return
  }, (error) => {
    if (error.response.status) {
      return Promise.reject(error.response);
    }
  },
);

/**
 * get方法，对应get请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
function get(url, params) {
  return new Promise((resolve, reject) => {
    axios.get(url, {
      params,
    }).then((res) => {
      resolve(res.data);
    })
      .catch((err) => {
        reject(err.data);
      });
  });
}
/**
 * post方法，对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
function post(url, params) {
  return new Promise((resolve, reject) => {
    axios.post(url, params)
      .then((res) => {
        resolve(res.data);
      })
      .catch((err) => {
        reject(err.data);
      });
  });
}

export default {
  get,
  post,
};
